package io;

import java.io.File;
import java.io.IOException;
import java.util.Date;

/**
 * 文件操作类
 * @author galen
 */
public class FileClass {
    public static void main(String[] args) throws IOException {
        // 1、获取文件属性
        String path = "D:/Java/www/Demo/";
        String fileName = "test.txt";
        File f = new File(path, fileName);

        System.out.println("============================================");
        System.out.println("文件长度：" + f.length() + "字节");
        System.out.println("文件或目录：" + (f.isFile() ? "是文件" : "不是文件"));
        System.out.println("文件或目录：" + (f.isDirectory() ? "是目录" : "不是目录"));
        System.out.println("是否可读：" + (f.canRead() ? "可读取" : "不可读取"));
        System.out.println("是否可写：" + (f.canWrite() ? "可写入" : "不可写入"));
        System.out.println("是否隐藏：" + (f.isHidden() ? "是隐藏文件" : "不是隐藏文件"));
        System.out.println("最后修改日期：" + new Date(f.lastModified()));
        System.out.println("文件名称：" + f.getName());
        System.out.println("文件路径：" + f.getPath());
        System.out.println("文件父级路径：" + f.getParent());
        System.out.println("文件绝对路径：" + f.getAbsolutePath());

        // 2、创建和删除文件
        String path2 = "D:/Java/www/Demo/demo.txt";
        File f2 = new File(path2);
        // 判断文件是否已存在
        if (f2.exists()) {
            // 删除文件
            f2.delete();
        }
        // 创建文件
        f2.createNewFile();

        // 3、创建和删除目录
        String path3 = "D:/Java/www/Demo/tmp";
        File f3 = new File(path3);
        if (f3.exists()) {
            f3.delete();
        }
        // 创建目录
        f3.mkdir();

        // 4、遍历目录
        File f4 = new File("./");
        System.out.println("文件名称\t\t文件类型\t\t文件大小");
        System.out.println("===================================================");
        String[] fileList = f4.list();
        for (int i = 0; i < fileList.length; i++) {
            System.out.print(fileList[i] + "\t\t");
            System.out.print((new File("./", fileList[i])).isFile() ? "文件" + "\t\t" : "文件夹" + "\t\t");
            System.out.println((new File("./", fileList[i])).length() + "字节");
        }

    }
}
